(deftemplate persoana (multislot nume)(slot culoarePar)(slot culoareOchi)(slot nationalitate))

(assert (persoana (nume sadsad sdas Jean Pierre)(culoarePar saten)(culoareOchi verzi)(nationalitate francez)))
(assert (persoana (nume Petru Marin)(culoarePar brunet)(culoareOchi negri)(nationalitate roman)))
(assert (persoana (nume Ion Lutescu)(culoarePar blond)(culoareOchi violet)(nationalitate neamt)))
(assert (persoana (nume Pista Maticza)(culoarePar saten)(culoareOchi albastri)(nationalitate neamt)))
(assert (persoana (nume Michael Schumacher)(culoarePar saten)(culoareOchi purpurii)(nationalitate neamt)))
(assert (persoana (nume Ghiula Toma)(culoarePar saten)(culoareOchi caprui)(nationalitate maghiar)))
(assert (persoana (nume Dennis Mitz)(culoarePar saten)(culoareOchi albastri)(nationalitate neamt)))
;(defrule regulaCristina
 ;   (persoana (nume $? ?np ?nn) (culoarePar saten) (culoareOchi verzi) (nationalitate francez))
  ;  =>
   ; (printout t "Persoana este " ?np " " ?nn)
    ;)

;(defrule selectie
 ;   (persoana (nume $? ?np ?nn) (culoarePar ?p & ~negru) (culoareOchi ?o & ~albastri))
  ;  (not (persoana (nume $? ?np1 & ~?np ?nn1 & ~?nn)(culoarePar ?p)))
   ; (not (persoana (nume $? ?np2 & ~?np ?nn2 & ~?nn)(culoareOchi ?o)))
    ;=>
    ;(printout t "Persoana:" ?np " " ?nn crlf)
    ;)
(defrule select
    (persoana (nume $? ?np ?nn)(culoarePar ?p & ~blond)(culoareOchi ?o)(nationalitate german))(test(or (eq ?p saten)(eq ?o albastri)))
    (persoana (nume $? ?np1 ?nn1)(culoarePar ?p)(culoareOchi ?o2 & ~verzi))
    ;(test (or (eq ?p saten)(eq ?o caprui)))
    =>
    (printout t "Persoana:" ?np " " ?nn " " ?np1 " " ?nn1 crlf)
    )

(run)